package smallfrench.moteur.biblio;

import smallfrench.moteur.interp.RObjet;

/**
 * Classe abstraite représentant une fonction.
 * @author antoine1023
 *
 */
public abstract class RFonction extends RObjet {

	public RFonction() {
		super(RClasseFonction.CLASSE);
	}

	/**
	 * @param moi Comme {@code this}
	 * @param args
	 * @return RObject
	 * @throws RuntimeException
	 */
	@Override
	public abstract RObjet appeler(RObjet moi, RObjet[] args);

	/**
	 * Retourne : {@code objet == this} <br>
	 * @param objet L’objet à comparer
	 */
	@Override
	public final boolean equals(Object objet) {
		return objet == this;
	}

	@Override
	public RChaine enChaine() {
		return new RChaine("Fonction");
	}

}
